import {
  BwCustomComSoltTypeEnum,
  BwCustomComSlotParamDataTypeEnum,
  BwCustomComTrendSlotVarFromTypeEnum,
} from './enum'

/** 当前自定义组件插槽信息模型 */
export interface BwCustomComSlotInfoModel {
  /** 插槽类型 */
  slotType: BwCustomComSoltTypeEnum

  /** 常规插槽信息 */
  conventionSlotInfo?: BwCustomComConventionSlotInfoModel

  /** 动态插槽信息 */
  trendsSlotInfo?: BwCustomComTrendsSlotInfoModel
}

/** 当前自定义组件节点常规插槽信息模型 */
export interface BwCustomComConventionSlotInfoModel {
  /** 插槽名称 */
  slotName: string

  /** 插槽标识 */
  slotCode: string

  /** 插槽参数 */
  slotParams?: Array<BwCustomComSlotParmsModel>
}

/** 当前自定义组件节点动态插槽信息模型 */
export interface BwCustomComTrendsSlotInfoModel {
  /** 标识 */
  logicCode: string

  /** 名称 */
  logicName: string

  /** 动态变量来源 */
  trendVarFrom: BwCustomComTrendSlotVarFromTypeEnum

  /** 组件变量名 */
  comVarName?: string

  /** 外放属性名 */
  comPorpName?: string

  /** 插槽参数 */
  slotParams: Array<BwCustomComSlotParmsModel>

  /** 插槽名 */
  slotCode: string
}

/** 当前自定义组件插槽参数信息模型 */
export interface BwCustomComSlotParmsModel {
  /** 参数标识 */
  paramKey: string

  /** 参数名称 */
  paramName: string

  /** 参数数据类型 */
  paramDataType: BwCustomComSlotParamDataTypeEnum

  /** 参数备注 */
  remark?: string | null
}
